package com.gexin.common.tag;

import java.util.Map;
import org.beetl.core.Tag;
import com.gexin.common.WebConst;
import com.gexin.common.utils.StringUtil;
import com.gexin.model.system.RoleCheck;
import com.jfinal.log.Log;

public class RoleCheckTag extends Tag {
	private  static final  Log  log = Log.getLog(RoleCheckTag.class);
	//type  只能支持一种选项  id 就是权限id  code  就是权限组代码    url  就是资源地址
	//value  根据上面的 type 来填写 多个值可以用逗号隔开    
	//当前用户登录的id 为1的时候   默认通过权限
	//<#role type="id,code,url,user_id"  value=""> <p>你有权限操作</p></role>
	@Override
	public void render() {
		// TODO Auto-generated method stub
		//String tagName = (String) this.args[0];//标签名称
		@SuppressWarnings("unchecked")
		Map<String,String> attrs = (Map<String,String> ) args[1];
		String  type =  attrs.get("type").toString();
		if(StringUtil.isBlank(type)){
			log.error("type参数不能为空");
			return ;
		}
		String  value =  attrs.get("value").toString();
		if(StringUtil.isBlank(value)){
			log.error("value参数不能为空");
			return ;
		}
		Integer  user_id =  (Integer) ctx.getGlobal(WebConst.Session_SysUserId);
		if(user_id==null){
			log.info("用户没有登录");
			return ;
		}
		Boolean  is_checkok=RoleCheck.check(user_id, type, value);
		//判断权限是否校验通过   超级管理员不要校验了
		if(is_checkok){
			doBodyRender();
		}
	}

}
